今天要介紹的是C語言的指標。
在C語言中,指標是用來儲存 記憶體位址
的,例如:
10
的位址A
的位址3.14
的位址我們可以將指標想作 住家地址(位址)
,此地址居住著一個 人(變數)
。
指標在宣告上與變數大致相同,但要加上 *
來告訴編譯器,此變數為指標,用於儲存變數位址。
既然有存儲,相反的則有取出,我們要取出一個變數的位址要使用 &
,取出位址的動作,可以看作一個運算,如同 +
、 -
、 *
、 /
、 %
一樣,因此要放在 =
右邊。
以C語言為例:
int *intAddress;
char *charAddress;
float *floatAddress;
double *doubleAddress;
int intVariable;
char charVariable;
float floatVariable;
double doubleVariable;
&
取得位址,賦值給對應的指標:intAddress = &intVariable;
charAddress = &charVariable;
floatAddress = &floatVariable;
doubleAddress = &doubleVariable;
printf
顯示指標變數所存儲的位址:printf("%p\n", intAddress);
printf("%p\n", charAddress);
printf("%p\n", floatAddress);
printf("%p\n", doubleAddress);
完整程式碼:
#include <stdio.h>
int main() {
int *intAddress;
char *charAddress;
float *floatAddress;
double *doubleAddress;
int intVariable;
char charVariable;
float floatVariable;
double doubleVariable;
intAddress = &intVariable;
charAddress = &charVariable;
floatAddress = &floatVariable;
doubleAddress = &doubleVariable;
printf("%p\n", intAddress);
printf("%p\n", charAddress);
printf("%p\n", floatAddress);
printf("%p\n", doubleAddress);
return 0;
}
輸出結果:
000000000061FDFC
000000000061FDFB
000000000061FDF4
000000000061FDE8
另外,輸出結果可能會不同,這是正常情況。